Предыдущий раздел ОСНОВНЫЕ ОПЕРАТОРЫ АССЕМБЛЕРА Следующий раздел

1.5.5. Другие операторы передачи управления

Это следующие операторы.

 1) int, iret – операторы программного прерывания и возврата из него. Данные операторы не имеют смысловых отличий от соответствующих машинных команд. Единственное, на что требуется обратить внимание, это тип системы счисления операнда в операторе int. Так как “родной” для ассемблера является десятичная система, то любое шестнадцатеричное число должно записываться по правилам, принятым в ассемблере. Это:

а) если старшей “цифрой” числа является буква, то перед ней записывается 0;

б) сразу за числом записывается буква h.

   Пример:    int  21h  .

2) Оператор останова hlt останавливает ЦП до первого аппаратного прерывания. Такие операторы часто встречаются в диагностических программах, а также для снижения нагрузки на ЦП в циклах — обработчиках событий мыши и клавиатуры.

Оператор холостого хода nop не действует ни на флаги, ни на регистры, ни на ячейки ОП. Единственное – он увеличивает содержимое IP на 1. Данный оператор имеет много применений для упрощения отладки программы. Три из них:

а) кодом оператора (90h) можно «забить» объектный код в том случае, если вам надо удалить машинную команду, не транслируя программу заново;

б) можно сделать оператор nop последним в тестируемой программе и тем самым получить удобное место для остановки трассировки;

 в) при смене режимов работы процессора содержимое указателя команды IP часто увеличивается на один байт. Для устранения ошибок целесообразно разместить оператор nop сразу после оператора, выполняющего смену режима работы ЦП.

 


Предыдущий раздел В начало Следующий раздел